1. Field of the Invention
This invention generally relates to a method where multiple devices sharing a transmission medium arbitrate the use of that medium, and more particularly to a method of communicating between a plurality of devices on a communication network by implicit token passing.
2. Background Discussion
Computer automation control is creating spectacular breakthroughs in industry. These breakthroughs have been made available for industry through the design and use of microprocessors and other hardware units. Microprocessors are controlling a variety of industrial automation control environments. These devices control a variety of functions, or monitor numerous conditions on an assembly line. It is particularly important that these devices communicate with each other at critical times. They have to access each other through the use of a communication network. A communication network incorporates the idea of allowing each device to communicate with another device on the network.
In the past, the devices communicated through a local network operated in a master/slave environment. A master controller was responsible for communications on the network. The master controller allowed a slave device to communicate only upon commands from the master controller. In this type of environment, the master controller was always informed of the type of devices on the network and the address of each device on the network. To be serviced, the slave devices were polled one at a time by the master controller. The slave devices could not communicate with another slave device without the intervention of the master controller. Because of these limitations, it was difficult for a device to be added to a network without the need for reconfiguring slave device addresses and the master controller.
As a result of this master/slave environment, many computer automation systems tended to be somewhat slow in communicating the results of tasks by the slave devices to the master controller. Some attempts have been made to alleviate this annoying problem; however, the results have not been altogether too satisfying. For example, one solution is to provide an address control line, a parallel data line, and an interrupt line from each slave device to the master controller. If the device needs service by the master controller, the slave device activates the interrupt line. The interrupt signals the master controller that the slave device needs service. However, if the master controller was busy, the slave device still waited for the master controller. Unless the master controller was fast enough, important high priority control data was lost.
Even in transmitting the data to the master controller, the slave device was forced to "listen" to the address/control lines. If the master controller gives network access to the slave device, the slave device can transmit data as requested by the master controller. This solution, unfortunately, severely limits the ability of the slave devices to communicate with each other. It further requires a single master controller unit to control all communications on the network.
Another problem in using a master controller in a computer automated control environment is single point failure. If the master controller is faulty or breaks down, the consequences can be serious. The entire automated assembly is literally shut down because of the single failure of the master controller. To overcome single point failures, many systems are designed with redundant master controllers to serve as backup. Accordingly, the expense and complexity of these systems is significantly increased. In addition to the problem of a single point failure, the requirement for a multitude of address/control lines, data lines, and interrupt lines to run between a master controller and the slave devices is considerably expensive. A considerable amount of effort is expended in designing computer automation systems to meet these critical needs.
Another solution provided a network configuration which allowed the slave devices to compete equally for network access. The system required devices to listen to the network to determine if the network was idle. If the network was idle, a device could attempt to transmit data on the network. However, another device could transmit at the same time, resulting in a collision on the network between data blocks. The devices would either have to resort to a rather complex method of collision avoidance to transmit their data or report the collision to a master controller to arbitrate network access. Collisions result in the data arriving at a destination at uncertain times. The collision avoidance network system was found to be unacceptable for computer automation control, because of the uncertainty in data transfer timing.
Therefore, it is an object of the present invention to provide a high integrity network designed for peer-to-peer communications between devices in an automation control environment.
It is another object of the present invention to provide a method for devices to have access to a network without the control of a master controller to arbitrate network access.
It is a further object of the present invention to provide a method for devices communicating on a network in which collisions are minimized.
It is yet another object of the present invention to provide for devices on a network, a method for the transfer of high priority foreground data in real time and still allow the transfer of low priority background data.
It is still another object of the present invention to provide collision-free access to the network when a device has been powered up.
It is a further object of the present invention to provide a re-synchronization method for network access for devices to recover after encounter noise in the system.